home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / comms / other / novia / src / novia_baseview_data.c < prev    next >
C/C++ Source or Header  |  1999-12-06  |  5KB  |  217 lines

  1. #ifndef MAKE_ID
  2. #define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  3. #endif
  4.  
  5. #ifdef _DCC
  6. #define __inline
  7. #endif
  8.  
  9. #include "novia_baseview_data.h"
  10. #include "novia_baseview_dataExtern.h"
  11.  
  12. struct BaseViewApp * CreateBaseViewApp(char *text)
  13. {
  14.     struct BaseViewApp * Object;
  15.  
  16.     APTR    GROUP_ROOT_0, GR_grp_0, GR_grp_1, Space_2;
  17.  
  18.     static const struct Hook DisplayItemHeaderEntryHook = { { NULL,NULL },(VOID *)DisplayItemHeaderEntry,NULL,NULL };
  19.     static const struct Hook RemoveItemHeaderEntryHook = { { NULL,NULL },(VOID *)RemoveItemHeaderEntry,NULL,NULL };
  20.  
  21.     if (!(Object = AllocVec(sizeof(struct BaseViewApp), MEMF_PUBLIC|MEMF_CLEAR)))
  22.         return(NULL);
  23.  
  24.     Object->LV_BASEVIEW_HEADER = ListObject,
  25.         MUIA_Frame, MUIV_Frame_InputList,
  26.         MUIA_List_Format, "P=\33r\338,",
  27.         MUIA_List_DisplayHook, &DisplayItemHeaderEntryHook,
  28.         MUIA_List_DestructHook, &RemoveItemHeaderEntryHook,
  29.     End;
  30.  
  31.     Object->LV_BASEVIEW_HEADER = ListviewObject,
  32.         MUIA_HelpNode, "LV_BASEVIEW_HEADER",
  33.         MUIA_Weight, 20,
  34.         MUIA_Listview_MultiSelect, MUIV_Listview_MultiSelect_Default,
  35.         MUIA_Listview_List, Object->LV_BASEVIEW_HEADER,
  36.     End;
  37.  
  38.     Object->BASEVIEW_TEXT =    NListviewObject,
  39.         MUIA_NListview_NList,
  40.             Object->MAILTEXT = MailtextObject,
  41.                 MUIA_Mailtext_ForbidContextMenu, FALSE,
  42.                 MUIA_Font,                       MUIV_Font_Fixed,
  43.                 MUIA_Frame,                      MUIV_Frame_InputList,
  44.                 MUIA_NList_Input,                FALSE,
  45.                 MUIA_NList_MultiSelect,          FALSE,
  46.             End,
  47.         MUIA_CycleChain, TRUE,
  48.     End;
  49.  
  50.     Object->REC_label_0 = RectangleObject,
  51.         MUIA_Rectangle_HBar, TRUE,
  52.         MUIA_FixHeight, 8,
  53.         MUIA_Scale_Horiz, TRUE,
  54.     End;
  55.  
  56.     Object->BT_PREV_REPLY = SimpleButton("P_rev Reply");
  57.  
  58.     Object->BT_NEXT_REPLY = SimpleButton("_Next Reply");
  59.  
  60.     Object->BT_DEL_REPLY = SimpleButton("Delete Reply");
  61.  
  62.     Object->BT_EDIT = SimpleButton("Edit");
  63.  
  64.     Object->BT_NEW = SimpleButton("New");
  65.  
  66.     Space_2 = HVSpace;
  67.  
  68.     Object->BT_PREV_POST = SimpleButton("Pr_ev Post");
  69.  
  70.     Object->BT_NEXT_POST = SimpleButton("Next P_ost");
  71.  
  72.     Object->BT_DEL_POST = SimpleButton("Delete Post");
  73.  
  74.     GR_grp_1 = GroupObject,
  75.         MUIA_HelpNode, "GR_grp_1",
  76.         MUIA_Group_Horiz, TRUE,
  77.         Child, Object->BT_PREV_REPLY,
  78.         Child, Object->BT_NEXT_REPLY,
  79.         Child, Object->BT_DEL_REPLY,
  80.         Child, Object->BT_EDIT,
  81.         Child, Object->BT_NEW,
  82.         Child, Space_2,
  83.         Child, Object->BT_PREV_POST,
  84.         Child, Object->BT_NEXT_POST,
  85.         Child, Object->BT_DEL_POST,
  86.     End;
  87.  
  88.     GR_grp_0 = GroupObject,
  89.         MUIA_HelpNode, "GR_grp_0",
  90.         Child, Object->LV_BASEVIEW_HEADER,
  91.         Child, Object->REC_label_0,
  92.         Child, Object->BASEVIEW_TEXT,
  93.         Child, GR_grp_1,
  94.     End;
  95.  
  96.     GROUP_ROOT_0 = GroupObject,
  97.         Child, GR_grp_0,
  98.     End;
  99.  
  100.     Object->WI_label_0 = WindowObject,
  101.         MUIA_Window_Title, "Message Base Viewer",
  102.         MUIA_Window_ID, MAKE_ID('0', 'W', 'I', 'N'),
  103.         WindowContents, GROUP_ROOT_0,
  104.     End;
  105.  
  106.     Object->App = ApplicationObject,
  107.         MUIA_Application_Author, "Thorten Gehler",
  108.         MUIA_Application_Base, "Novia Message Viewer",
  109.         MUIA_Application_Title, "Novia Message Viewer",
  110.         MUIA_Application_Version, "$VER: Novia Message Viewer 01.00 (16.01.1999)",
  111.         MUIA_Application_Copyright, "(c) 1999 by Thorsten Gehler",
  112.         MUIA_Application_Description, "NONE",
  113.         MUIA_HelpFile, "novia_client.guide",
  114.         SubWindow, Object->WI_label_0,
  115.     End;
  116.  
  117.  
  118.     if (!Object->App)
  119.     {
  120.         FreeVec(Object);
  121.         return(NULL);
  122.     }
  123.  
  124.     DoMethod(Object->BT_PREV_REPLY,
  125.         MUIM_Notify, MUIA_Pressed, FALSE,
  126.         Object->App,
  127.         2,
  128.         MUIM_Application_ReturnID, GUIID_BASEVIEWER_REPLY_REPLY
  129.         );
  130.  
  131.     DoMethod(Object->BT_NEXT_REPLY,
  132.         MUIM_Notify, MUIA_Pressed, FALSE,
  133.         Object->App,
  134.         2,
  135.         MUIM_Application_ReturnID, GUIID_BASEVIEWER_REPLY_NEXT
  136.         );
  137.  
  138.     DoMethod(Object->BT_DEL_REPLY,
  139.         MUIM_Notify, MUIA_Pressed, FALSE,
  140.         Object->App,
  141.         2,
  142.         MUIM_Application_ReturnID, GUIID_BASEVIEWER_REPLY_REMOVE
  143.         );
  144.  
  145.     DoMethod(Object->BT_EDIT,
  146.         MUIM_Notify, MUIA_Pressed, FALSE,
  147.         Object->App,
  148.         2,
  149.         MUIM_Application_ReturnID, GUIID_BASEVIEWER_EDIT
  150.         );
  151.  
  152.     DoMethod(Object->BT_NEW,
  153.         MUIM_Notify, MUIA_Pressed, FALSE,
  154.         Object->App,
  155.         2,
  156.         MUIM_Application_ReturnID, GUIID_BASEVIEWER_NEW
  157.         );
  158.  
  159.     DoMethod(Object->BT_PREV_POST,
  160.         MUIM_Notify, MUIA_Pressed, FALSE,
  161.         Object->App,
  162.         2,
  163.         MUIM_Application_ReturnID, GUIID_BASEVIEWER_POST_PREV
  164.         );
  165.  
  166.     DoMethod(Object->BT_NEXT_POST,
  167.         MUIM_Notify, MUIA_Pressed, FALSE,
  168.         Object->App,
  169.         2,
  170.         MUIM_Application_ReturnID, GUIID_BASEVIEWER_POST_NEXT
  171.         );
  172.  
  173.     DoMethod(Object->BT_DEL_POST,
  174.         MUIM_Notify, MUIA_Pressed, FALSE,
  175.         Object->App,
  176.         2,
  177.         MUIM_Application_ReturnID, GUIID_BASEVIEWER_POST_REMOVE
  178.         );
  179.  
  180.     DoMethod(Object->REC_label_0,
  181.         MUIM_Notify, MUIA_Pressed, FALSE,
  182.         Object->App,
  183.         2,
  184.         MUIM_Application_ReturnID, 10
  185.         );
  186.  
  187.     DoMethod(Object->WI_label_0,
  188.         MUIM_Window_SetCycleChain, Object->LV_BASEVIEW_HEADER,
  189.         Object->BASEVIEW_TEXT,
  190.         Object->BT_PREV_REPLY,
  191.         Object->BT_NEXT_REPLY,
  192.         Object->BT_DEL_REPLY,
  193.         Object->BT_EDIT,
  194.         Object->BT_NEW,
  195.         Object->REC_label_0,    
  196.         Object->BT_PREV_POST,
  197.         Object->BT_NEXT_POST,
  198.         Object->BT_DEL_POST,
  199.         0
  200.         );
  201.  
  202.     DoMethod(Object->WI_label_0,    MUIM_Notify,MUIA_Window_CloseRequest, TRUE,Object->App,2,MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
  203.  
  204.     set(Object->WI_label_0,
  205.         MUIA_Window_Open, TRUE
  206.         );
  207.  
  208.  
  209.     return(Object);
  210. }
  211.  
  212. void DisposeBaseViewApp(struct BaseViewApp * Object)
  213. {
  214.     MUI_DisposeObject(Object->App);
  215.     FreeVec(Object);
  216. }
  217.